package com.yunwushanhe.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yunwushanhe.bean.req.RoleAddReq;
import com.yunwushanhe.bean.req.RolePageReq;
import com.yunwushanhe.bean.req.RoleStatusUpdateReq;
import com.yunwushanhe.bean.req.RoleUpdateReq;
import com.yunwushanhe.bean.ret.ResponseResult;
import com.yunwushanhe.bean.vo.*;
import com.yunwushanhe.entity.Role;

import java.util.List;

/**
 * 角色信息表(Role)表服务接口
 *
 * @author 抬头看看天
 * @since 2023-08-17 16:05:08
 */
public interface RoleService extends IService<Role> {

    List<String> selectRoleKeyListByUserId(Long id);

    ResponseResult<PageVO<List<RolePageVO>>> listRolePage(RolePageReq rolePageReq);

    ResponseResult<Object> changeRoleStatus(RoleStatusUpdateReq roleStatusUpdateReq);

    ResponseResult<Object> addRole(RoleAddReq roleAddReq);

    ResponseResult<RoleUpdateVO> getRoleById(Long id);

    ResponseResult<MenuRoleListVO> getRoleMenuTreeByRoleId(Long id);

    ResponseResult<Object> updateRoleById(RoleUpdateReq roleUpdateReq);

    ResponseResult<Object> deleteRoleById(String id);

    ResponseResult<List<RoleListVO>> getRoleList();
}

